package cn.tedu.powerfulfitness.mapper;

import cn.tedu.powerfulfitness.pojo.entity.Product;
import cn.tedu.powerfulfitness.pojo.vo.ProductListItemVO;
import cn.tedu.powerfulfitness.pojo.vo.ProductStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 处理商品数据的Mapper接口
 */
@Repository
public interface ProductMapper {
    /**
     * 插入商品数据
     */
    int insert(Product product);

    /**
     * 根据ID删除商品数据
     */
    int deleteById(int id);

    /**
     * 根据ID修改商品数据
     */
    int update(Product product);

    /**
     * 统计商品数据的数量
     */
    int count();

    /**
     * 根据相商品名称统计数据的数量
     */
    int countByTitle(String title);

    /**
     * 统计非某ID但名称匹配的商品数据的数量，用于检查是否存在其它数据使用了相同的名称
     */
    int countByTitleAndNotId(@Param("id") Integer id, @Param("title") String name);

    /**
     * 根据ID查询商品数据详情
     */
    ProductStandardVO getStandardById(int id);

    /**
     * 查询商品数据列表
     */
    List<ProductListItemVO> list();
}
